/**
 * 格式化时间戳
 * 
 * @param {Object} fmt
 * @param {Object} timestamp
 * 
 * 示例:
 * dateFormat('yyyy-mm-dd hh:ii:ss S')        //2019-12-20 05:02:08 770
 * dateFormat('y-m-d h:i:s S')                //2019-12-20 5:2:8 771
 * dateFormat('y年m月d日 h时i分s秒 S毫秒')     //2019年12月20日 15时52分50秒 772毫秒
 * dateFormat('ymdhisS')                      //20191220155250773
 * 
 * dateFormat('yyyy-mm-dd hh:ii:ss', '指定时间戳 int')
 * 
 */
export const dateFormat = (fmt, timestamp) => {
	let date = (timestamp == undefined) ? new Date() : new Date(timestamp * 1000);
	
    let ret;
	let weeks = new Array("日", "一", "二", "三", "四", "五", "六");
	let week  = date.getDay();
    let opt = {
        "y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "h+": date.getHours().toString(),           // 时
        "i+": date.getMinutes().toString(),         // 分
        "s+": date.getSeconds().toString(),         // 秒
        "S": date.getMilliseconds().toString(),    	// 毫秒
		"w": week,                                  // 星期几[小写]
		"W": weeks[week],							// 星期几[大写]
    };
	
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        };
    };
	
    return fmt;
}

export const formatTime = (timestamp,fmt) => { 
    // 第二个为时间样式，2天以内用 刚刚，分钟前，小时前来表示，如果超出了这些时间那么就返回具体的时间
    timestamp = +timestamp * 1000  // 时间戳 以秒算
    const d = new Date(timestamp)
    const now = Date.now()

    const diff = (now - d) / 1000

    if (diff < 30) {
        return '刚刚'
    } else if (diff < 3600) { // less 1 hour
        return Math.ceil(diff / 60) + '分钟前'
    } else if (diff < 3600 * 24) {
        return Math.ceil(diff / 3600) + '小时前'
    } else if (diff < 3600 * 24 * 2) {
        return '1天前'
    }else if(fmt){
			
			//如果超过一天 则根据fmt 传进来的格式返回该时间的具体时间
			timestamp = timestamp/1000
			
			return dateFormat(fmt, timestamp);//
	}
  //   if (fmt) { 
  //       return dateFormat(fmt, timestamp)
  //   } else {
		// let fmt_str = 'mm月' + 'dd日' + ' hh时' + 'ii分';
  //       return dateFormat(fmt_str, timestamp);//
  //   }
}